// pages/dubiji/dubiji.js
var plugin = requirePlugin("WechatSI")
let manager = plugin.getRecordRecognitionManager()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    title: '',
    text: '',
    text_old: '',
    recording: false,  // 正在录音
    recordStatus: 0,   // 状态： 0 - 录音中 1- 翻译中 2 - 翻译完成/二次翻译
    id: '',
    authed:false
  },
  saveFs(){
    this.setData({
      create_time:new Date().toLocaleString()
    })
    wx.cloud.database().collection("note").add({
      data:{
        title:this.data.title,
        text:this.data.text,
        content:this.data.text,
        create_time:this.data.create_time,
        type:1,
        Collection:0
      }}).then(res=>{
          wx.switchTab({
            url: '/pages/index/index',
          })
      }).catch(res=>{
          console.log("type=1 的笔记写入失败",res);
      })
  },
  titleInput(e){
    this.setData({
      title:e.detail.value
    })
  },
  textareaAInput(e){
    this.setData({
      text:e.detail.value
    })
  },
  streamRecord(){
    wx.vibrateShort({
      complete: (res) => {},
    })
    manager.start({duration:30000, lang: "zh_CN"})
  },
  endStreamRecord(){
     // 防止重复触发stop函数
     manager.stop()
    if (!this.data.recording || this.data.recordStatus != 0) {
      console.warn("has finished!")
      return
    }



  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (e) {
    this.initRecord()
    this.getRecordAuth()
  },
  initRecord: function () {
    //有新的识别内容返回，则会调用此事件
    // manager.onRecognize = (res) => {
    //   this.setData({
    //     text: this.data.text_old + res.result,
    //   })
    // }

    // 识别结束事件
    manager.onStop = (res) => {

      let text = res.result
      if (text == '') {
        this.showRecordEmptyTip()
        return
      }
      this.setData({
        text: this.data.text_old +text,
        recordStatus: 1,
        recording: false,
      }),
      this.setData({
        text_old:String(this.data.text)
      })
    }

    // 识别错误事件
    manager.onError = (res) => {

      this.setData({
        recording: false,
      })

    }
  },
  getRecordAuth: function () {
    wx.getSetting().then(res=>{
      if(res.authSetting['scope.record']){
        this.setData({
          authed:true
        })
      }else{
        wx.authorize({
          scope: 'scope.record',
        }).then(res=>{
          this.setData({
            authed:true
          })
        }).catch(res=>{
          this.cancel_auth()
        })
      }
    })
  },
  cancel_auth(){
    wx.showModal({
      title:"提示",
      content:"未授权无法录音哦~",
      cancelText:"不授权",
      confirmText:"去授权",
      success:res=>{
        if(res.confirm){
          wx.openSetting({
            success:res=>{
              if(res.authSetting['scope.record']){
                this.setData({
                  authed:true
                })
              }
            }
          })
        }
      }
      })
  },
  showRecordEmptyTip(){
    wx.showToast({
      title: '识别为空',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})